package com.example.base_model.bean

import com.squareup.moshi.JsonClass

/**
 * @Author jiangKunKun
 * @CreateDate 2025/7/8
 * @Description 基础bean类返回, 用于包装所有网络请求的响应数据。
 * @param T 响应数据的具体类型。
 * @SpittingGrooves
 */
@JsonClass(generateAdapter = true)
data class BaseHttpBean<T>(
    /**
     * 响应状态码。通常，0 或 200 表示成功。
     */
    val code: Int,
    /**
     * 响应消息。可以是成功信息，也可以是错误提示。
     */
    val msg: String,
    /**
     * 实际的响应数据。如果请求失败或没有数据，可能为 null。
     */
    val data: T?
)

/**
 * 扩展函数，用于判断网络请求是否成功。
 * @return 如果 code 为 0 或 200，则返回 true；否则返回 false。
 */
fun <T> BaseHttpBean<T>.isSuccess(): Boolean = code == 0 || code == 200
